No decorrer deste curso, o R será usado como uma ferramenta que deve auxiliar na aplicação de métodos e técnicas de análise da informação, uma etapa fundamental em pesquisas que buscam um aumento da compreensão de questões no nosso campo de interesse.
É importante ressaltar que ele não pode ser dissociado do processo de pesquisa, que envolve a observação, formulação de hipóteses e coleta de dados, além da análise de dados (que é o foco deste curso).
O R é um programa estatístico muito usado na análise e visualização de dados, onde a interação é feita através de uma sintaxe (linguagem de programação).
Algumas de suas vantagens são (IBPAD, 2018):
Explicar RStudio.
Referenciar os tutoriais disponíveis.
Nessa primeira aula prática, vamos realizar uma análise exploratória dos discentes matriculados no Bacharelado em Planejamento Territorial (BPT), a partir da amostra dos respondentes da pesquisa Perfil Discente 2019 da PROPLADI/UFABC, com o objetivo de responder às seguintes perguntas:
Após a instalação do R e RStudio, abra o RStudio. Clique em New file >>> R Script ou aperte os comando Ctrl + Shift + N para criar um novo script, onde vamos salvar o nosso código.
Um código (script) refere-se à uma rotina de análise ou visualização de dados que:
Fig. 1 - Como criar um novo script
Em cada aula prática, vamos salvar a rotina de análise de dados em um novo script, que podemos abrir a qualquer momento para lembrar as funções e objetos que foram usados. É recomendado submeter, junto com o trabalho final, um script que permite a reprodução da análise de dados, seguindo as boas práticas da ciência aberta.
Se tudo deu certo, a sua interface conta agora com quatro painéis principais:
1. Source: É a sua área de trabalho principal. Pode conter várias janelas, com códigos (scripts), tabelas e outros conteúdos. Ao clicar em Run, a linha que o cursor está apontando vai rodar e aparecer no Console.
2. Console: Você pode escrever uma linha de código diretamente no Console. Todo o código que rodar na Fonte, será enviado ao Console, onde os avisos e resultados do código rodado aparecerão.
3. Environment/History: * Environment: É o ambiente de trabalho ativo. Todos os objetos e funções definidas devem aparecer no ambiente. * History: Exibe o histórico de cada linha de código rodada, que podem ser enviadas ao Source ou Console.
4. Files/Plots/Packages/Help/Viewer: * Files: Exibe o diretório de trabalho ativo. * Plots: Exibe os gráficos, mapas e outras figuras produzidas. * Packages: Exibe uma lista de pacotes instalados e ativos. * Help: Exibe * Viewer: Funciona como um navegador de internet.
Fig. 2 - Interface RStudio
Os dados já foram pré-processados para conter apenas as observações (discentes matriculados no BPT) e variáveis de interesse. O endereço para acessar a base de dados é: https://raw.githubusercontent.com/luisfelipebr/mti/master/dados/dados_bpt1.csv.
O RStudio conta com um botão para auxiliar na importação de dados. Clique em Import Dataset >>> From Text (readr)... para importar a sua primeira base de dados. Em File/URL você pode colocar o endereço web para a transferência e importação da base de dados (desde que você tenha conexão com a internet) ou você pode clicar em Browse para navegar pelo seu diretório até encontrar o arquivo que deseja importar. Uma pré-visualização do arquivo deve aparecer em Data preview, permitindo que você confira se a importação da base de dados deu certo. Import options apresenta algumas opções de importação adicionais que você pode explorar mais tarde.
Adicione o endereço web da nossa base de dados e clique em Update ou faça a transferência do arquivo e indique o caminho clicando no botão Browse.
Veja que alguns caracteres apareceram com erro. Isso aconteceu porque o formato do nosso arquivo não foi reconhecido. É possível arrumar esses caracteres clicando em Locale: Configure.... Em Encoding: selecione Other... e escreva latin1. Clique em OK e em seguida em Configure.
Se você clicar na opção Import, a base de dados será importada. Mas como o nosso objetivo é tornar o código reprodutível, vamos copiar o código que apareceu em Code preview e colar no nosso script.
library(readr)
dados_bpt1 <- read_csv("https://raw.githubusercontent.com/luisfelipebr/mti/master/dados/dados_bpt1.csv", locale = locale(encoding = "latin1"))
View(dados_bpt1)Fig. 3 - Importação da base de dados através da interface
Selecione todo o código (3 linhas) e clique em Run ou aperte os comandos Ctrl + Enter para rodar o seu primeiro código. Uma nova janela será aberta, permitindo a visualização da base de dados. Ela foi aberta após a reprodução do código View(dados_bpt1), que abre uma tabela parecida com a do excel para visualização dos dados.
Se tudo deu certo, a sua base de dados está agora listada no Environment: dados_bpt1 com 37 observações e 8 variáveis.
Fig. 4 - Rodando o código
Atenção: Se essa foi a sua primeira vez usando o R no seu computador, pode ser necessário instalar o pacote readr para importar os dados. Isso pode ser feito rodando o código abaixo após copiar e colar no seu script ou console. Um pacote só precisa ser instalado uma vez em cada computador.
Além da função View(), existem diversas outras funções que permitem explorar uma base de dados.
A função head() exibe as primeiras observações da base de dados no Console, sem a necessidade de abrir uma nova aba, e é altamente recomendada para bases de dados grandes (mais de 100.000 observações) que podem travar o programa RStudio se abertas.
## # A tibble: 6 x 8
## id idade ano_de_ingresso ca cr turno renda municipio_de_resi~
## <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <chr> <chr>
## 1 1 25 2013 2.7 2.6 Matut~ De R$ 5.000~ Ribeirão Pires - ~
## 2 2 22 2015 2.9 2.86 Notur~ De R$ 1.500~ São Bernardo do C~
## 3 3 25 2013 2.7 2.5 Matut~ De R$ 750,0~ São Paulo - SP
## 4 4 23 2015 3.01 2.91 Notur~ De R$ 3.000~ Mauá - SP
## 5 5 24 2013 2 1.6 Notur~ De R$ 4.000~ São Paulo - SP
## 6 6 31 2013 3.2 2.72 Matut~ De R$ 3.000~ São Paulo - SP
A função tail(), de forma similar, exibe as últimas observações da base de dados no Console.
## # A tibble: 6 x 8
## id idade ano_de_ingresso ca cr turno renda municipio_de_resi~
## <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <chr> <chr>
## 1 32 24 2015 3.5 3.5 Matut~ De R$ 5.000~ São Paulo - SP
## 2 33 30 2010 NA NA Notur~ Até R$ 750,~ São Bernardo do C~
## 3 34 NA 2012 NA NA Notur~ De R$ 4.000~ São Bernardo do C~
## 4 35 24 2014 3.5 3.4 Notur~ Acima de R$~ São Paulo - SP
## 5 36 23 2015 4 3.6 Notur~ De R$ 750,0~ São Paulo - SP
## 6 37 29 2012 2.43 1.93 Notur~ Até R$ 750,~ São Paulo - SP
A função names() exibe o nome de todas as variáveis da base de dados no Console.
## [1] "id" "idade"
## [3] "ano_de_ingresso" "ca"
## [5] "cr" "turno"
## [7] "renda" "municipio_de_residencia"
A função str() exibe a estrutura da base de dados, com a classe da base de dados (tibble - é um nome para dados em formato de tabela), o número de observações e variáveis, o nome de cada variável, a classe de cada variável (se é numérica, lógica, caractére ou outras) e as primeiras observações.
## tibble [37 x 8] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ id : num [1:37] 1 2 3 4 5 6 7 8 9 10 ...
## $ idade : num [1:37] 25 22 25 23 24 31 32 29 NA 23 ...
## $ ano_de_ingresso : num [1:37] 2013 2015 2013 2015 2013 ...
## $ ca : num [1:37] 2.7 2.9 2.7 3.01 2 3.2 NA 2 3 2.7 ...
## $ cr : num [1:37] 2.6 2.86 2.5 2.91 1.6 2.72 NA 2 2.8 2.04 ...
## $ turno : chr [1:37] "Matutino" "Noturno" "Matutino" "Noturno" ...
## $ renda : chr [1:37] "De R$ 5.000,01 a R$ 7.000,00" "De R$ 1.500,01 a R$ 2.250,00" "De R$ 750,01 a R$ 1.500,00" "De R$ 3.000,01 a R$ 4.000,00" ...
## $ municipio_de_residencia: chr [1:37] "Ribeirão Pires - SP" "São Bernardo do Campo - SP" "São Paulo - SP" "Mauá - SP" ...
## - attr(*, "spec")=
## .. cols(
## .. id = col_double(),
## .. idade = col_double(),
## .. ano_de_ingresso = col_double(),
## .. ca = col_double(),
## .. cr = col_double(),
## .. turno = col_character(),
## .. renda = col_character(),
## .. municipio_de_residencia = col_character()
## .. )
Importante: o operador $ é usado para referir-se a uma variável da base de dados.
A função summary() apresenta um sumário com estatísticas descritivas (mínimo, 1º quartil, mediana, média, 3º quartil, máximo e valores faltantes - NA’s) para todas as variáveis numéricas.
## id idade ano_de_ingresso ca cr
## Min. : 1 Min. :19.00 Min. :2009 Min. :2.000 Min. :1.600
## 1st Qu.:10 1st Qu.:24.00 1st Qu.:2012 1st Qu.:2.675 1st Qu.:2.475
## Median :19 Median :25.00 Median :2013 Median :2.990 Median :2.820
## Mean :19 Mean :25.71 Mean :2013 Mean :2.925 Mean :2.757
## 3rd Qu.:28 3rd Qu.:27.50 3rd Qu.:2015 3rd Qu.:3.203 3rd Qu.:3.152
## Max. :37 Max. :32.00 Max. :2018 Max. :4.000 Max. :3.600
## NA's :2 NA's :5 NA's :5
## turno renda municipio_de_residencia
## Length:37 Length:37 Length:37
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
##
No sumário, já temos a resposta para as duas primeiras questões.
Mas essas respostas também podem ser apresentadas de forma mais direta, através de funções específicas.
1. Qual é a mediana da idade dos discentes matriculados no BPT?
A mediana pode ser obtida através da função median().
## [1] NA
Mas quando digitamos median(dados_bpt1$idade), a resposta é um valor faltante (NA). Isso aconteceu porque, conforme vimos no sumário, existem 2 NA’s na variável idade. Para obter o mesmo resultado do sumário, podemos acrescentar o argumento na.rm = TRUE para remover os valores faltantes do cálculo da mediana.
## [1] 25
Portanto, a mediana da idade dos discentes matriculados no BPT é 25 anos.
2. Qual é o CR médio dos discentes matriculados no BPT?
De forma similar, podemos aplicar a função mean() para obter o CR médio dos discentes matriculados no BPT.
## [1] 2.7575
O CR médio dos discentes matriculados no BPT é 2,757.
3. Quais são os três municípios de residência mais comuns entre os discentes matriculados no BPT?
Para responder a terceira pergunta, aplicamos a função table() para criar uma tabela com a contagem do município de residência dos discentes matriculados no BPT.
##
## Guarulhos - SP Mauá - SP
## 1 1
## Outro município do Estado de São Paulo Ribeirão Pires - SP
## 1 3
## Santo André - SP São Bernardo do Campo - SP
## 8 9
## São Paulo - SP
## 14
Os três municípios de residência mais comuns entre os discentes matriculados no BPT são São Paulo, São Bernardo do Campo e Santo André.
4. Qual o município de residência mais comum entre os discentes matriculados no BPT que assistiram disciplinas principalmente no matutino no último ano?
Para responder a essa pergunta, usamos a função table() para criar uma tabela com dois argumentos: município de residência e turno.
##
## Matutino Noturno Prefiro não responder
## Guarulhos - SP 0 0 1
## Mauá - SP 0 1 0
## Outro município do Estado de São Paulo 0 0 0
## Ribeirão Pires - SP 1 2 0
## Santo André - SP 2 6 0
## São Bernardo do Campo - SP 0 8 1
## São Paulo - SP 5 9 0
##
## Vespertino
## Guarulhos - SP 0
## Mauá - SP 0
## Outro município do Estado de São Paulo 1
## Ribeirão Pires - SP 0
## Santo André - SP 0
## São Bernardo do Campo - SP 0
## São Paulo - SP 0
O município de residência mais comum entre os discentes matriculados no BPT que assistiram disciplinas principalmente no matutino é São Paulo.
O R não vai exportar a sua base de dados a menos que você especifique esse comando.
Após rodar a sua rotina de análise de dados, você ter feito alterações na base de dados e gostaria de salvá-la como um novo arquivo para acessá-la futuramente. No nosso caso, não fizemos alterações, mas ainda assim vamos exportar a base de dados com o uso da função write_csv().
Atenção: você precisa alterar o argumento path = para incluir o diretório de trabalho onde deseja salvar o arquivo. dados_bpt1.csv deve ser mantido, pois refere-se ao nome e formato do arquivo que será exportado.
Após reproduzir a análise exploratória de dados proposta nessa aula prática o seu script deve estar parecido com esse.
Fig. 5 - Script final
Importante: todo o conteúdo após o # não será rodado pelo R. Ele é muito usado para adicionar comentários antes de cada linha, para que você e outras pessoas que estão lendo o seu código entendam o que cada linha de código faz ao ser rodada.
Você pode salvar o seu script para reproduzir a análise exploratória proposta nessa aula quando quiser, clicando no disquete azul ou através do comando Ctrl + S.
Fig. 6 - Salvando o script